﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
//using WindowsFormsApplication2;
using System.Data.SqlClient;

namespace Hotel.DichVu
{
    public partial class QL_dichvu : Form
    {
        public QL_dichvu()
        {
            InitializeComponent();
        }

        private HotelDataSet ds = new HotelDataSet();
        private SqlConnection con;
        private SqlDataAdapter da = new SqlDataAdapter();
        //private string tableName = "KhoDichVu";

        private void connect()
        {
            string cn = "Data Source=.;Initial Catalog=Hotel;Integrated Security=True";

            try
            {
                con = new SqlConnection(cn);
                con.Open();
                //getdata(1);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Khong the ket noi co so du lieu", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        public void serverdata(string sql)
        {
            try
            {
                connect();
                SqlCommand command = new SqlCommand();
                command.Connection = con;
                command.CommandText = sql;
                command.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                MessageBox.Show("Lỗi cơ sở dữ liệu!!!", "Lỗi cơ sở dữ liệu", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

       
        private void btnKhoDichVuNhapKho_Click(object sender, EventArgs e)
        {
            this.Dispose();
            new Form1().Show();
            this.QL_dichvu_Load(sender, e);

        }

        private void btnKhoDichVuXuatKho_Click(object sender, EventArgs e)
        {
            this.Dispose();
            new Form2().Show();
            this.QL_dichvu_Load(sender, e);
            
        }

        private void btnKhoDichVuThoat_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void btnKhoDichVuThem_Click(object sender, EventArgs e)
        {
            this.Dispose();
            new Them_DV().Show();
            this.QL_dichvu_Load(sender, e);
            
        }

        public void QL_dichvu_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'hotelDataSet.KhoDichVu' table. You can move, or remove it, as needed.
            //this.khoDichVuTableAdapter.Fill(this.hotelDataSet.KhoDichVu);
            String sqlString = "Data Source=localhost;Initial Catalog=Hotel;Integrated Security=True";
            SqlConnection con = new SqlConnection(sqlString);
            SqlDataAdapter da = new SqlDataAdapter("SELECT      [MaHang]"
                                                            +" ,[TenHang]"
                                                            +" ,[DonGia]"
                                                            +" ,[SoLuong]"
                                                    +" FROM [Hotel].[dbo].[KhoDichVu]"
                                                    +" WHERE [Hotel].[dbo].[KhoDichVu].[DaXoa] = 0 ", con);
            DataTable dt = new DataTable();
            da.Fill(dt);
            dgvKhoDichVu.DataSource = dt;
        }

       
        private void btnKhoDichVuLuu_Click(object sender, EventArgs e)
        {
            if ((tbxKhoDichVuMaHang.Text != "") && (tbxKhoDichVuTenHang.Text != "") && (tbxKhoDichVuSoLuong.Text != "") && (tbxKhoDichVuDonGia.Text != ""))
            {
                if (!CheckTonTaiDichVu(tbxKhoDichVuMaHang.Text, tbxKhoDichVuTenHang.Text, tbxKhoDichVuSoLuong.Text, tbxKhoDichVuDonGia.Text))
                {
                    DialogResult dr = MessageBox.Show("Bạn có muốn lưu thông tin?", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                    if (dr == DialogResult.Yes)
                    {
                        serverdata("UPDATE KhoDichVu SET TenHang = N'" + tbxKhoDichVuTenHang.Text + "',DonGia = '" + tbxKhoDichVuDonGia.Text + "',SoLuong = N'" + tbxKhoDichVuSoLuong.Text + "' where MaHang = N'" + tbxKhoDichVuMaHang.Text + "'");
                        SqlCommandBuilder cmdBldr = new SqlCommandBuilder(da);
                        //this.khoDichVuTableAdapter.Fill(this.hotelDataSet.KhoDichVu);
                        this.QL_dichvu_Load(sender, e);
                        MessageBox.Show("Đã lưu thành công!", "Thông Báo!!!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else if (dr == DialogResult.No)
                    {
                        MessageBox.Show("Chưa thực hiện lưu thông tin dịch vụ!", "Thông Báo!!!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    
                }
                else MessageBox.Show("Dịch vụ này đã tồn tại trước đó!Vui lòng kiếm tra lại", "Thông Báo!!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else MessageBox.Show("Bạn nhập thiếu thông tin. Xin mời nhập đầy đủ", "Lỗi thiếu thông tin!!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

        private void btnKhoDichVuXoa_Click(object sender, EventArgs e)
        {
            if ((tbxKhoDichVuMaHang.Text != "") && (tbxKhoDichVuTenHang.Text != "") && (tbxKhoDichVuSoLuong.Text != "") && (tbxKhoDichVuDonGia.Text != ""))
            {
                if (CheckTonTaiDichVu(tbxKhoDichVuMaHang.Text, tbxKhoDichVuTenHang.Text, tbxKhoDichVuSoLuong.Text, tbxKhoDichVuDonGia.Text))
                {
                    DialogResult dr = MessageBox.Show("Bạn chắc chắn muốn xóa?", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                    if (dr == DialogResult.Yes)
                    {
                        serverdata("UPDATE KhoDichVu SET DaXoa = 1 WHERE MaHang = '" + tbxKhoDichVuMaHang.Text + "' ");
                        SqlCommandBuilder cmdBldr = new SqlCommandBuilder(da);
                        //da.Fill(ds, tableName);
                        //da.Update(ds, tableName);    
                        this.QL_dichvu_Load(sender, e);
                        MessageBox.Show("Xóa dịch vụ thành công!!!", "Thông Báo!!!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else if (dr == DialogResult.No)
                    {
                        MessageBox.Show("Chưa thực hiện xóa dịch vụ!", "Thông Báo!!!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                else MessageBox.Show("Dịch vụ này không tồn tại. Mời bạn kiểm tra lại!", "Thông báo lỗi!!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else MessageBox.Show("Bạn không được thay đổi thông tin của trường cần xóa. Mời bạn chọn đúng dịch vụ cần xóa!", "Thông báo lỗi!!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
             
          
        }

        /*private void khoDichVuBindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
            this.Validate();
            this.khoDichVuBindingSource.EndEdit();
            this.tableAdapterManager.UpdateAll(this.hotelDataSet);

        }*/

        private void dgvKhoDichVu_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int i = e.RowIndex;
            if (i > -1)
            {
                tbxKhoDichVuMaHang.Text = dgvKhoDichVu.Rows[i].Cells["MaHang"].Value.ToString();
                tbxKhoDichVuTenHang.Text = dgvKhoDichVu.Rows[i].Cells["TenHang"].Value.ToString();
                tbxKhoDichVuSoLuong.Text = dgvKhoDichVu.Rows[i].Cells["SoLuong"].Value.ToString();
                tbxKhoDichVuDonGia.Text = dgvKhoDichVu.Rows[i].Cells["DonGia"].Value.ToString();
            }

        }

        private void  ResetTextBox()
        {
            tbxKhoDichVuMaHang.Text = "";
            tbxKhoDichVuTenHang.Text = "";
            tbxKhoDichVuDonGia.Text = "";
            tbxKhoDichVuSoLuong.Text = "";
        }

        private void btnKhoDichVuTimKiem_Click(object sender, EventArgs e)
        {
            String sqlString = "Data Source=localhost;Initial Catalog=Hotel;Integrated Security=True";
            SqlConnection con = new SqlConnection(sqlString);
            SqlDataAdapter da = new SqlDataAdapter("SELECT      [MaHang]"
                                                            + " ,[TenHang]"
                                                            + " ,[DonGia]"
                                                            + " ,[SoLuong]"
                                                    + " FROM [Hotel].[dbo].[KhoDichVu]"
                                                    + " WHERE [Hotel].[dbo].[KhoDichVu].[TenHang] LIKE N'%" + tbxKhoDichVuTenHang.Text + "%' AND [Hotel].[dbo].[KhoDichVu].[DonGia] LIKE '%" + tbxKhoDichVuDonGia.Text + "%' AND [Hotel].[dbo].[KhoDichVu].[SoLuong] LIKE '%"+tbxKhoDichVuSoLuong.Text+"%' AND [Hotel].[dbo].[KhoDichVu].[DaXoa] = 0 ", con);
            DataTable dt = new DataTable();
            da.Fill(dt);
            dgvKhoDichVu.DataSource = dt;
            ResetTextBox();
        }

        private void tbxKhoDichVuTenHang_KeyPress(object sender, KeyPressEventArgs e)
        {
            //e.Handled = !(((e.KeyChar >= 48) && (e.KeyChar <= 57)) || ((e.KeyChar >= 65) && (e.KeyChar <= 122)) || (e.KeyChar == 8) || (e.KeyChar == 32));
        }

        private void tbxKhoDichVuDonGia_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = !((e.KeyChar >= 48) && (e.KeyChar <= 57) || (e.KeyChar == 8));
        }

        private void tbxKhoDichVuSoLuong_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = !((e.KeyChar >= 48) && (e.KeyChar <= 57) || (e.KeyChar == 8));
        }

        private Boolean CheckTonTaiDichVu(String madichvu, String tendichvu, String soluong, String dongia)
        {

            String sql = "SELECT      [MaHang]"
                                 + " ,[TenHang]"
                                 + " ,[DonGia]"
                                 + " ,[SoLuong]"
                         + " FROM [Hotel].[dbo].[KhoDichVu]"
                         + " WHERE [Hotel].[dbo].[KhoDichVu].[MaHang] LIKE '%" + tbxKhoDichVuMaHang.Text + "%' AND [Hotel].[dbo].[KhoDichVu].[TenHang] LIKE N'%" + tbxKhoDichVuTenHang.Text + "%' AND [Hotel].[dbo].[KhoDichVu].[DonGia] LIKE '%" + tbxKhoDichVuDonGia.Text + "%' AND [Hotel].[dbo].[KhoDichVu].[SoLuong] LIKE '%" + tbxKhoDichVuSoLuong.Text + "%' AND [Hotel].[dbo].[KhoDichVu].[DaXoa] = 0 ";
            String sqlConnectString = "Data Source=localhost;Initial Catalog=Hotel;Integrated Security=True";
            SqlConnection con = new SqlConnection(sqlConnectString);
            SqlDataAdapter da = new SqlDataAdapter(sql, con);
            DataTable dt = new DataTable();
            da.Fill(dt);
            if (dt.Rows.Count > 0)
                return true;
            return false;

        }

        private void btnKhoDichVuTimKiemTatCa_Click(object sender, EventArgs e)
        {
            String sqlString = "Data Source=localhost;Initial Catalog=Hotel;Integrated Security=True";
            SqlConnection con = new SqlConnection(sqlString);
            SqlDataAdapter da = new SqlDataAdapter("SELECT   [MaHang]"
                                                        + " ,[TenHang]"
                                                        + " ,[DonGia]"
                                                        + " ,[SoLuong]"
                                                    + " FROM [Hotel].[dbo].[KhoDichVu]"
                                                    + " WHERE [Hotel].[dbo].[KhoDichVu].[DaXoa] = 0 ", con);
            DataTable dt = new DataTable();
            da.Fill(dt);
            dgvKhoDichVu.DataSource = dt;
            ResetTextBox();
        }

        private void btnKhoDichVuInTatCa_Click(object sender, EventArgs e)
        {
            ReportDanhsachdichvu report = new ReportDanhsachdichvu();
            report.Show();
        }
    }
}
